package com.itheima.exception;

import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @program: spring_base
 * @description:
 * @author: zhanghz001
 * @create: 2020-12-03 16:30
 **/
// @Component
//使用注解开发异常处理器
//声明该类是一个Controller的通知类，声明后该类就会被加载成异常处理器
// @ControllerAdvice
public class ExceptionAdvice {
    @ResponseBody
    //异常处理
    // 器类中针对指定异常进行处理的方法上方  作用：设置指定异常的处理方式  范例：  说明：处
    // 理器方法可以设定多个

    //类中定义的方法携带@ExceptionHandler注解的会被作为异常处理器，后面添加实际处理的异常类型
    @ExceptionHandler({IndexOutOfBoundsException.class})
    public String doOtherException1(Exception ex) {
        return "IndexOutOfBoundsException,请联系管理员!";
    }

    @ExceptionHandler({NullPointerException.class})
    public String doOtherException(Exception ex) {
        return "NullPointerException,请联系管理员!";
    }

    @ExceptionHandler({BusinessException.class})
    @ResponseBody
    public String doOtherException4(Exception ex) {
        return "BusinessException,请联系管理员!";
    }

    @ExceptionHandler({SystemException.class})
    @ResponseBody
    public String doOtherException5(Exception ex) {
        return "SystemException,请联系管理员!";
    }

    @ExceptionHandler({Exception.class})
    @ResponseBody
    public String doOtherException3(Exception ex) {
        return "Exception,请联系管理员!";
    }

}
